04. 无用代码
什么是无用代码?
无用代码是程序中不再具有任何意义的额外代码。比如,在编写一个解决方案时,你沿着一个逻辑分支写下去,发现最终行不通。或者你出于调试的目的添加了额外代码,但这段代码并不是解决方案的一部分。无用代码虽然是程序的一部分,但不影响程序实现。
它可能拖慢程序。这些代码虽然不会使用,但仍然会在 CPU 上执行,并且可能涉及内存读写操作。
还有两个问题也与无用代码相关,它们有时候也被看作无用代码—— 冗余代码 和 执行不到的代码 。
冗余代码
顾名思义,冗余代码就是多次重复的不必要代码。请看例子:
//冗余代码案例
int x = 6;
if (x > 5) {
return true;
}
else {
return false;
}
本质而言,先说 x > 5 然后返回 True 这部分是冗余的。你可以删除 if 语句:
return x > 5;
这是另一个例子
if (x < 5) {
x = x + 1;
}
else if (x >= 5 && x < 10) {
x = x + 2;
}
检查
x >= 5
毫无必要。第一个 if 语句已经证明了 x 和 5 的大小。
但是,发现冗余代码并不容易。它可能是额外的变量声明,或者上面例子中这种额外的逻辑语句。
执行不到的代码
执行不到的代码,是指永远不会执行的代码。这些代码可能对代码运行速度影响不大,但仍会占用内存空间,导致内存管理效率降低。
下面是一个简单的例子:
unsigned int x;
...
if (x >= 0) {
do_something ..
}
else {
do_something ..
}
未分配的整数始终为零或正数,因此 else 语句永远都不会执行。else 语句里的代码是不可执行的。
在本课最后,当你看到 Andy 的代码时,注意是否有无用代码或冗余代码。你可能会发现好几处。
在本课的下一部分,你会看到一个将两个矩阵相加的程序。你需要执行代码,查看程序运行速度。但程序中包含无用代码。你需要删除无用代码,然后检查程序速度有无提升。
dead code
SOLUTION:
- 删除无用代码、冗余代码或执行不到的代码后,能提升效率。